{% extends "base.html" %}

{% block title %}数据一致性检查{% endblock %}

{% block content %}
<div class="container-fluid">
    <div class="row">
        <div class="col-12">
            <h2 class="mb-4">
                <i class="fas fa-database me-2"></i>数据一致性检查
            </h2>
            
            <!-- 检查说明 -->
            <div class="card mb-4">
                <div class="card-header">
                    <h5 class="mb-0">检查说明</h5>
                </div>
                <div class="card-body">
                    <p>数据一致性检查将验证以下内容：</p>
                    <ul>
                        <li>任务工时总和与WorkHour表中的工时记录是否一致</li>
                        <li>任务进度与工时记录是否匹配</li>
                        <li>任务时间逻辑是否正确（开始时间 ≤ 结束时间）</li>
                        <li>工时记录是否存在异常值（负数、过大值）</li>
                        <li>是否存在孤立记录（任务被删除但工时记录仍存在）</li>
                    </ul>
                </div>
            </div>
            
            <!-- 检查控制面板 -->
            <div class="card mb-4">
                <div class="card-header">
                    <h5 class="mb-0">检查控制</h5>
                </div>
                <div class="card-body">
                    <form method="POST" id="checkForm">
                        <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
                        <div class="row mb-3">
                            <div class="col-md-6">
                                <button type="submit" name="action" value="check" class="btn btn-primary">
                                    <i class="fas fa-search me-2"></i>执行检查
                                </button>
                            </div>
                            <div class="col-md-6 text-right">
                                <div class="form-check form-check-inline">
                                    <input class="form-check-input" type="checkbox" id="autoFix" name="auto_fix">
                                    <label class="form-check-label" for="autoFix">自动修复简单问题</label>
                                </div>
                            </div>
                        </div>
                    </form>
                </div>
            </div>
            
            <!-- 检查结果 -->
            {% if checked %}
            <div class="card mb-4">
                <div class="card-header d-flex justify-content-between align-items-center">
                    <h5 class="mb-0">检查结果</h5>
                    <span class="badge {% if inconsistencies %}bg-danger{% else %}bg-success{% endif %}">
                        {% if inconsistencies %}
                            发现 {{ inconsistencies|length }} 个问题
                        {% else %}
                            未发现问题
                        {% endif %}
                    </span>
                </div>
                <div class="card-body">
                    {% if inconsistencies %}
                        <div class="table-responsive">
                            <table class="table table-striped">
                                <thead>
                                    <tr>
                                        <th>问题类型</th>
                                        <th>问题描述</th>
                                        <th>相关记录</th>
                                        <th>建议操作</th>
                                    </tr>
                                </thead>
                                <tbody>
                                    {% for item in inconsistencies %}
                                    <tr>
                                        <td>
                                            <span class="badge bg-warning">{{ item.type }}</span>
                                        </td>
                                        <td>{{ item.description }}</td>
                                        <td>
                                            {% if item.task_id %}
                                                任务ID: {{ item.task_id }}
                                            {% endif %}
                                            {% if item.work_hour_id %}
                                                工时记录ID: {{ item.work_hour_id }}
                                            {% endif %}
                                        </td>
                                        <td>
                                            {% if item.auto_fixable %}
                                                <span class="success-text">可自动修复</span>
                                            {% else %}
                                                <span class="warning-text">需要手动处理</span>
                                            {% endif %}
                                        </td>
                                    </tr>
                                    {% endfor %}
                                </tbody>
                            </table>
                        </div>
                        
                        <div class="mt-3">
                            <form method="POST">
                                <input type="hidden" name="csrf_token" value="{{ csrf_token() }}">
                                <input type="hidden" name="action" value="fix">
                                <div class="form-check mb-2">
                                    <input class="form-check-input" type="checkbox" id="confirmAutoFix" name="auto_fix" checked>
                                    <label class="form-check-label" for="confirmAutoFix">
                                        自动修复可修复的问题
                                    </label>
                                </div>
                                <button type="submit" class="btn btn-success">
                                    <i class="fas fa-tools me-2"></i>修复问题
                                </button>
                            </form>
                        </div>
                    {% else %}
                        <div class="alert alert-success">
                            <i class="fas fa-check-circle me-2"></i>
                            所有数据一致性检查通过，未发现问题。
                        </div>
                    {% endif %}
                </div>
            </div>
            {% endif %}
            
            <!-- 修复结果 -->
            {% if fixed %}
            <div class="card">
                <div class="card-header">
                    <h5 class="mb-0">修复结果</h5>
                </div>
                <div class="card-body">
                    {% if fix_report %}
                        <div class="alert alert-info">
                            <h6>修复统计:</h6>
                            <ul>
                                <li>总问题数: {{ fix_report.total_issues }}</li>
                                <li>已修复: {{ fix_report.fixed_count }}</li>
                                <li>未修复: {{ fix_report.unfixed_count }}</li>
                            </ul>
                        </div>
                        
                        {% if fix_report.fixed_items %}
                        <h6>已修复的问题:</h6>
                        <ul>
                            {% for item in fix_report.fixed_items %}
                            <li class="success-text">{{ item }}</li>
                            {% endfor %}
                        </ul>
                        {% endif %}
                        
                        {% if fix_report.unfixed_items %}
                        <h6>需要手动处理的问题:</h6>
                        <ul>
                            {% for item in fix_report.unfixed_items %}
                            <li class="warning-text">{{ item }}</li>
                            {% endfor %}
                        </ul>
                        {% endif %}
                    {% else %}
                        <div class="alert alert-warning">
                            没有可修复的问题。
                        </div>
                    {% endif %}
                </div>
            </div>
            {% endif %}
        </div>
    </div>
</div>

<script>
$(document).ready(function() {
    // 表单提交前确认
    $('#checkForm').on('submit', function(e) {
        var action = $('button[type="submit"][clicked]').val();
        
        if (action === 'fix' && !confirm('确定要修复发现的数据问题吗？建议先备份数据库。')) {
            e.preventDefault();
            return false;
        }
    });
    
    // 记录点击的按钮
    $('button[type="submit"]').on('click', function() {
        $('button[type="submit"]').removeAttr('clicked');
        $(this).attr('clicked', 'true');
    });
});
</script>
{% endblock %}